﻿using System;
using System.Collections.Generic;
using System.Web.UI;
using Sebra.Academico.InfraEstrutura.Core.Helper;
using Sebra.Academico.Trilhas.BP;
using Sebrae.Academico.Trilhas.BP;
using Sebrae.Academico.Trilhas.Dominio.Classes;

namespace Sebrae.Academico.Trilhas.WebForms.Cadastros
{
    public partial class EdicaoItemTrilha : System.Web.UI.Page
    {
        private ItemTrilha ItemtrilhaEdicao = null;
        private ManterItemTrilha manterItemTrilha = new ManterItemTrilha();

        protected void Page_Load(object sender, EventArgs e)
        {
            //if (!Page.IsPostBack)
            //{
            //   // this.PreencherCombos();

            //    //if (Session["ItemTrilhaEdit"] != null)
            //    //{
            //    //    int idItemTrilha = int.Parse(Session["ItemTrilhaEdit"].ToString());
            //    //    ItemtrilhaEdicao = manterItemTrilha.ObterPorID(idItemTrilha);
            //    //    PreencherCampos(ItemtrilhaEdicao);
            //    //}
            //}
        }

        //private void PreencherCampos(ItemTrilha itemtrilhaEdicao)
        //{
        //    if (itemtrilhaEdicao != null)
        //    {
        //        WebFormHelper.SetarValorNaCombo(itemtrilhaEdicao.Trilha.ID.ToString(), ddlTrilha);
        //        WebFormHelper.SetarValorNaCombo(itemtrilhaEdicao.TrilhaNivel.ID.ToString(), ddlTrilhaNivel);
        //        WebFormHelper.SetarValorNaCombo(itemtrilhaEdicao.TrilhaTopicoTematico.ID.ToString(), ddlTrilhaTopicoTematico);
        //        WebFormHelper.SetarValorNaCombo(itemtrilhaEdicao.TrilhaFormaAprendizagem.ID.ToString(), ddlTrilhaFormaAprendizagem);
        //        CarregarComboSolucaoEducacional(itemtrilhaEdicao.TrilhaFormaAprendizagem.ID);
        //        WebFormHelper.SetarValorNaCombo(itemtrilhaEdicao.SolucaoEducacional.ID.ToString(), ddlSolucaoEducacional);
        //        txtPontos.Text = itemtrilhaEdicao.QuantidadePontosParticipacao.ToString();
        //    }

        //}

        //protected void ddlTrilhaFormaAprendizagem_SelectedIndexChanged(object sender, EventArgs e)
        //{
        //    if (!string.IsNullOrWhiteSpace(ddlTrilhaFormaAprendizagem.SelectedItem.Value))
        //    {
        //        int idFormaAprendizagem = int.Parse(ddlTrilhaFormaAprendizagem.SelectedItem.Value);
        //        CarregarComboSolucaoEducacional(idFormaAprendizagem);
        //    }
        //}

        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            //Todo: - Este page.isvalid so faz sentido com o uso dos validators
            //Ex: RequiredFieldValidator, RegularExpressionValidator
            if (Page.IsValid)
            {
                try
                {

                    ItemtrilhaEdicao = new ItemTrilha();

                    if (Session["ItemTrilhaEdit"] == null)
                    {
                        ManterItemTrilha manterItemTrilha = new ManterItemTrilha();
                        ItemTrilha itemTrilha = ucItemTrilha1.ObterObjetoItemTrilha();
                        manterItemTrilha.Incluir(itemTrilha);
                        ucItemTrilha1.LimparCampos();
                    }
                    else
                    {
                        ItemtrilhaEdicao = ucItemTrilha1.ObterObjetoItemTrilha();
                        ItemtrilhaEdicao.ID = int.Parse(Session["ItemTrilhaEdit"].ToString());
                        manterItemTrilha.Alterar(ItemtrilhaEdicao);
                        Session.Remove("ItemTrilhaEdit");
                    }

                }
                catch (Exception ex)
                {
                    //TODO -> Exibir mensagem de Erro em um alert ? -> Precisamos definir isso
                    throw ex;
                }

                Response.Redirect("ListarItemTrilha.aspx");
            }
        }


        //#region "Métodos Privados"

        //private ItemTrilha PreencherObjetoItemTrilha()
        //{
        //    ItemTrilha itemTrilha = new ItemTrilha();

        //    //Trilha
        //    if (!string.IsNullOrWhiteSpace(this.ddlTrilha.SelectedItem.Value))
        //        itemTrilha.Trilha = new Trilha() { ID = int.Parse(this.ddlTrilha.SelectedItem.Value) };

        //    //Trilha Nivel
        //    if (!string.IsNullOrWhiteSpace(this.ddlTrilhaNivel.SelectedItem.Value))
        //        itemTrilha.TrilhaNivel = new TrilhaNivel() { ID = int.Parse(this.ddlTrilhaNivel.SelectedItem.Value) };

        //    //Trilha Tópico Temático
        //    if (!string.IsNullOrWhiteSpace(this.ddlTrilhaTopicoTematico.SelectedItem.Value))
        //        itemTrilha.TrilhaTopicoTematico = new TrilhaTopicoTematico() { ID = int.Parse(this.ddlTrilhaTopicoTematico.SelectedItem.Value) };

        //    //Trilha Forma Aprendizagem
        //    if (!string.IsNullOrWhiteSpace(this.ddlTrilhaFormaAprendizagem.SelectedItem.Value))
        //        itemTrilha.TrilhaFormaAprendizagem = new TrilhaFormaAprendizagem() { ID = int.Parse(this.ddlTrilhaFormaAprendizagem.SelectedItem.Value) };

        //    //Solução Educacional
        //    if ((this.ddlSolucaoEducacional.SelectedItem != null) &&
        //        !string.IsNullOrWhiteSpace(this.ddlSolucaoEducacional.SelectedItem.Value))
        //        itemTrilha.SolucaoEducacional = new SolucaoEducacional() { ID = int.Parse(this.ddlSolucaoEducacional.SelectedItem.Value) };

        //    //Pontos
        //    if (!string.IsNullOrWhiteSpace(this.txtPontos.Text))
        //    {
        //        int qtdPontos = 0;
        //        if (!int.TryParse(this.txtPontos.Text.Trim(), out qtdPontos))
        //            throw new Exception("Valor Inválido para o Campo Pontos. Informe um Valor entre 1 e 9");
        //        else
        //            itemTrilha.QuantidadePontosParticipacao = qtdPontos;
        //    }


        //    return itemTrilha;

        //}

        //private void LimparCampos()
        //{
        //    ddlTrilha.ClearSelection();
        //    ddlSolucaoEducacional.ClearSelection();
        //    ddlTrilhaFormaAprendizagem.ClearSelection();
        //    ddlTrilhaNivel.ClearSelection();
        //    ddlTrilhaTopicoTematico.ClearSelection();
        //    txtPontos.Text = "";
        //}

        //private void PreencherCombos()
        //{
        //    try
        //    {
        //        PreencherComboTrilhas();
        //        PreencherComboTrilhaNivel();
        //        PreencherComboTrilhaTopicoTematico();
        //        PreencherComboTrilhaFormaAprendizagem();
        //    }
        //    catch (Exception ex)
        //    {
        //        throw ex;
        //    }
        //}

        //private void PreencherComboTrilhaTopicoTematico()
        //{
        //    ManterTrilhaTopicoTematico manterTrilhaTopicoTematico = new ManterTrilhaTopicoTematico();
        //    IList<TrilhaTopicoTematico> ListaTrilhaTopicoTematico = manterTrilhaTopicoTematico.ObterTodosTrilhaTopicoTematico();
        //    WebFormHelper.PreencherLista(ListaTrilhaTopicoTematico, this.ddlTrilhaTopicoTematico);
        //}


        //private void PreencherComboTrilhas()
        //{
        //    ManterTrilha manterTrilha = new ManterTrilha();
        //    IList<Trilha> ListaTrilhas = manterTrilha.ObterTrilhas();
        //    WebFormHelper.PreencherLista(ListaTrilhas, this.ddlTrilha);
        //}

        //private void PreencherComboTrilhaFormaAprendizagem()
        //{
        //    ManterTrilhaFormaAprendizagem manterTrilhaFormaAprendizagem = new ManterTrilhaFormaAprendizagem();
        //    IList<TrilhaFormaAprendizagem> ListaTrilhaFormaAprendizagem = manterTrilhaFormaAprendizagem.ObterTodosTrilhaFormaAprendizagem();
        //    WebFormHelper.PreencherLista(ListaTrilhaFormaAprendizagem, this.ddlTrilhaFormaAprendizagem);
        //}

        //private void PreencherComboTrilhaNivel()
        //{
        //    ManterTrilhaNivel manterTrilhaNivel = new ManterTrilhaNivel();
        //    IList<TrilhaNivel> ListaTrilhaNivel = manterTrilhaNivel.ObterTodos();
        //    WebFormHelper.PreencherLista(ListaTrilhaNivel, this.ddlTrilhaNivel);
        //}

        //private void CarregarComboSolucaoEducacional(int IdFormaAprendizagem)
        //{
        //    ManterSolucaoEducacional manterSolucaoEducacional = new ManterSolucaoEducacional();
        //    IList<SolucaoEducacional> ListaSolucaoEducacional = manterSolucaoEducacional.ObterPorFormaAprendizagem(IdFormaAprendizagem);
        //    WebFormHelper.PreencherLista(ListaSolucaoEducacional, this.ddlSolucaoEducacional);
        //}

        //#endregion

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            Response.Redirect("ListarItemTrilha.aspx");
        }
    }
}